# Author: Sanmu
# CreatTime: 2024/10/24
# Descriptior: 描述
from selenium import webdriver


def chrome_options():
    # 创建options对象
    options = webdriver.ChromeOptions()

    # 页面加载策略
    options.page_load_strategy = 'normal'

    # options中最常用的两种设置项修改方法
    # options.add_argument()  #常规方法，普通的设定修改
    # options.add_experimental_option()   #实验性质的设置项修改方法

    # 窗口最大化
    options.add_argument('start-maximized') #浏览器默认启动最大化

    '''以下两种方法均不适用窗体最大化下执行'''
    # 窗体指定坐标的启动
    # options.add_argument('window-position=100,100')
    # 窗体初始化尺寸
    # options.add_argument('window-size=1000,700')

    # 去除警告
    options.add_experimental_option('excludeSwitches', ['enable-automation'])

    # 无头模式：浏览器不显示，只执行脚本
    # options.add_argument('--headless')

    # 关闭账号密码管理窗口提示
    prefs = {
        'credentials-enable-service': False,
        'profile.password_manager_enable': False
    }
    options.add_experimental_option('prefs', prefs)

    '''Selenium默认打开的浏览器是非登录状态的，即不会去加载本地缓存文件。是一个干净的浏览器。
        导致的问题：
            1、第一次访问某个域名执行登录时，一定会要求有验证码
            2、无法将需要读取的缓存数据及时加载，导致页面加载速度相对慢一些
        自动化测试不处理验证码。
        加载本地缓存，一定要关闭所有浏览器窗口
    '''
    # 读取本地缓存文件
    options.add_argument(r'--user-data-dir=C:\Users\SANMU\AppData\Local\Google\Chrome\User Data\Default')

    # 去除控制台多余的日志信息
    options.add_experimental_option('excludeSwitches', ['enable-logging'])
    # 进一步去除控制台信息
    options.add_argument('--log_level=3')
    options.add_argument('--disable-gpu')
    options.add_argument('--ignore-certificate-errors')

    return options
